#include <fstream>
#include <vector>
#include <iomanip>

struct point
{
	double x, y;
};

double area(const std::vector<point> &p)
{
	int n = p.size();
	if (n >= 3)
	{
		double sum = 0;
		double temp = 0;
		double l = 0;

		for (int i = 0; i < n; i++)
		{
			sum += (p[(i + 1) % n].x - p[i % n].x) * (p[(i + 1) % n].y + p[i % n].y) / 2;
			temp += p[(i + 1) % n].x - p[i % n].x;
			if (l < -p[(i + 1) % n].y)
				l = -p[(i + 1) % n].y;
		}

		return sum + temp * l;
	}
	else
		return 0;
}

int main()
{
	std::ifstream input("in.txt");
	std::ofstream output("out.txt");

	std::vector<point> points;
	point p;
	while (input >> p.x >> p.y)
	{
		points.push_back(p);
	}

	output << std::fixed << std::setprecision(10) << area(points) << "\n";

	return 0;
}